package pe.gob.osce.sirenas.dao.convert;



import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import pe.gob.osce.sirenas.model.ExperienciaLaboralDTO;
import pe.gob.osce.sirenas.model.jpa.Auditoria;
import pe.gob.osce.sirenas.model.jpa.ExperienciaLaboral;
import pe.gob.osce.sirenas.model.jpa.fiscalizacion.FiscalizaExpLaboral;
import pe.gob.osce.sirenas.model.jpa.rectificaciones.HistorialExperienciaLaboral;

public class ExperienciaLaboralConvert {

	public ExperienciaLaboralConvert(){}
	
	public static ExperienciaLaboral createJPA(ExperienciaLaboralDTO experienciaLaboralDTO, Auditoria auditoria)
	{
		ExperienciaLaboral objetoJPA= new ExperienciaLaboral();
	
		objetoJPA.setIdLaboral(experienciaLaboralDTO.getIdLaboral());
		objetoJPA.setIdFicha(experienciaLaboralDTO.getIdFicha());
		objetoJPA.setIndEspecialidad(experienciaLaboralDTO.getIndEspecialidad());		
		objetoJPA.setNomCentroTrabajo(experienciaLaboralDTO.getNomCentroTrabajo());
		objetoJPA.setDescripcionCargo(experienciaLaboralDTO.getDescripcionCargo());
		objetoJPA.setFecIngreso(experienciaLaboralDTO.getFecIngreso());
		objetoJPA.setFecEgreso(experienciaLaboralDTO.getFecEgreso());
		objetoJPA.setIndicadorActual(experienciaLaboralDTO.getIndicadorActual());
		objetoJPA.setCodTramite(experienciaLaboralDTO.getCodTramite());
		objetoJPA.setCodRegistro(experienciaLaboralDTO.getCodRegistro());
		if(experienciaLaboralDTO.getEstado()!=null){
			objetoJPA.setEstado(experienciaLaboralDTO.getEstado());
		}
		
		objetoJPA.setAuditoria(auditoria);
		
		return objetoJPA;
	}
	

	public static ExperienciaLaboralDTO createExpLaboralFiscalizadaDTO(ExperienciaLaboral experienciaLaboralJPA,FiscalizaExpLaboral fiscalizaExpLaboralJPA)
	{
		ExperienciaLaboralDTO objetoDTO= new ExperienciaLaboralDTO();
		
		objetoDTO.setIdLaboral(experienciaLaboralJPA.getIdLaboral());
		objetoDTO.setIdFicha(experienciaLaboralJPA.getIdFicha());
		objetoDTO.setIndEspecialidad(experienciaLaboralJPA.getIndEspecialidad());		
		objetoDTO.setNomCentroTrabajo(experienciaLaboralJPA.getNomCentroTrabajo());
		objetoDTO.setDescripcionCargo(experienciaLaboralJPA.getDescripcionCargo());
		objetoDTO.setFecIngreso(experienciaLaboralJPA.getFecIngreso());
		objetoDTO.setFecEgreso(experienciaLaboralJPA.getFecEgreso());
		objetoDTO.setIndicadorActual(experienciaLaboralJPA.getIndicadorActual());
		objetoDTO.setCodTramite(experienciaLaboralJPA.getCodTramite());
		objetoDTO.setCodRegistro(experienciaLaboralJPA.getCodRegistro());
		objetoDTO.setEsEditable(false);
		objetoDTO.setEstado(experienciaLaboralJPA.getEstado());
		
		objetoDTO.setDescAccion(fiscalizaExpLaboralJPA.getDescAccion() );
		objetoDTO.setDescResultado(fiscalizaExpLaboralJPA.getDescResultado() );
		
		return objetoDTO;
		
	}
	
	public static ExperienciaLaboralDTO createDTO(ExperienciaLaboral experienciaLaboralJPA)
	{
		ExperienciaLaboralDTO objetoDTO= new ExperienciaLaboralDTO();
		
		objetoDTO.setIdLaboral(experienciaLaboralJPA.getIdLaboral());
		objetoDTO.setIdFicha(experienciaLaboralJPA.getIdFicha());
		objetoDTO.setIndEspecialidad(experienciaLaboralJPA.getIndEspecialidad());		
		objetoDTO.setNomCentroTrabajo(experienciaLaboralJPA.getNomCentroTrabajo());
		objetoDTO.setDescripcionCargo(experienciaLaboralJPA.getDescripcionCargo());
		objetoDTO.setFecIngreso(experienciaLaboralJPA.getFecIngreso());
		objetoDTO.setFecEgreso(experienciaLaboralJPA.getFecEgreso());
		objetoDTO.setIndicadorActual(experienciaLaboralJPA.getIndicadorActual());
		objetoDTO.setCodTramite(experienciaLaboralJPA.getCodTramite());
		objetoDTO.setCodRegistro(experienciaLaboralJPA.getCodRegistro());
		objetoDTO.setEsEditable(false);
		objetoDTO.setEstado(experienciaLaboralJPA.getEstado());
			return objetoDTO;
		
	}
	
	public static List<ExperienciaLaboralDTO> createListDTO(List<ExperienciaLaboral> listaExperienciaLaboralJPA){
		
		List<ExperienciaLaboralDTO> listaObjetoDTO=new ArrayList<ExperienciaLaboralDTO>();
		ExperienciaLaboralDTO objetoDTO;

		for (ExperienciaLaboral experienciaLaboralJPA: listaExperienciaLaboralJPA) {
			objetoDTO= new ExperienciaLaboralDTO();
			objetoDTO.setIdLaboral(experienciaLaboralJPA.getIdLaboral());
			objetoDTO.setIdFicha(experienciaLaboralJPA.getIdFicha());
			objetoDTO.setIndEspecialidad(experienciaLaboralJPA.getIndEspecialidad());		
			objetoDTO.setNomCentroTrabajo(experienciaLaboralJPA.getNomCentroTrabajo());
			objetoDTO.setDescripcionCargo(experienciaLaboralJPA.getDescripcionCargo());
			objetoDTO.setFecIngreso(experienciaLaboralJPA.getFecIngreso());
			objetoDTO.setFecEgreso(experienciaLaboralJPA.getFecEgreso());
			objetoDTO.setIndicadorActual(experienciaLaboralJPA.getIndicadorActual());
			objetoDTO.setCodTramite(experienciaLaboralJPA.getCodTramite());
			objetoDTO.setCodRegistro(experienciaLaboralJPA.getCodRegistro());
			objetoDTO.setEsEditable(false);
			objetoDTO.setEstado(experienciaLaboralJPA.getEstado());
			listaObjetoDTO.add(objetoDTO);
		}
		
		return listaObjetoDTO;
		
		}
	
	
	public static List<ExperienciaLaboral> createListJPA(List<ExperienciaLaboralDTO> listaExperienciaLaboralDTO, Auditoria auditoria)
	{
		List<ExperienciaLaboral> listaObjetoJPA=new ArrayList<ExperienciaLaboral>();
		ExperienciaLaboral objetoJPA;
		for (ExperienciaLaboralDTO experienciaLaboralDTO: listaExperienciaLaboralDTO) {
			objetoJPA= new ExperienciaLaboral();
			objetoJPA.setIdLaboral(experienciaLaboralDTO.getIdLaboral());
			objetoJPA.setIdFicha(experienciaLaboralDTO.getIdFicha());
			objetoJPA.setIndEspecialidad(experienciaLaboralDTO.getIndEspecialidad());		
			objetoJPA.setNomCentroTrabajo(experienciaLaboralDTO.getNomCentroTrabajo());
			objetoJPA.setDescripcionCargo(experienciaLaboralDTO.getDescripcionCargo());
			objetoJPA.setFecIngreso(experienciaLaboralDTO.getFecIngreso());
			objetoJPA.setFecEgreso(experienciaLaboralDTO.getFecEgreso());
			objetoJPA.setIndicadorActual(experienciaLaboralDTO.getIndicadorActual());
			objetoJPA.setCodTramite(experienciaLaboralDTO.getCodTramite());
			objetoJPA.setCodRegistro(experienciaLaboralDTO.getCodRegistro());
			if(experienciaLaboralDTO.getEstado()!=null){
				objetoJPA.setEstado(experienciaLaboralDTO.getEstado());
			}
			objetoJPA.setAuditoria(auditoria);
			listaObjetoJPA.add(objetoJPA);
		}
		return listaObjetoJPA;
		
	}
	
	public static List<HistorialExperienciaLaboral> createListHistorialExperienciaLaboralJPA(List<ExperienciaLaboral> listaExperienciaLaboral, Auditoria auditoria)
	{
		List<HistorialExperienciaLaboral> listaObjetoHistorialJPA=new ArrayList<HistorialExperienciaLaboral>();
		HistorialExperienciaLaboral objetoHistorialJPA;
		for (ExperienciaLaboral experienciaLaboralJPA: listaExperienciaLaboral) {
			objetoHistorialJPA= new HistorialExperienciaLaboral();
			objetoHistorialJPA.setFecHistorial(new Date());
			objetoHistorialJPA.setIdLaboral(experienciaLaboralJPA.getIdLaboral());
			objetoHistorialJPA.setIdLaboral(experienciaLaboralJPA.getIdLaboral());
			objetoHistorialJPA.setIdFicha(experienciaLaboralJPA.getIdFicha());
			objetoHistorialJPA.setIndEspecialidad(experienciaLaboralJPA.getIndEspecialidad());		
			objetoHistorialJPA.setNomCentroTrabajo(experienciaLaboralJPA.getNomCentroTrabajo());
			objetoHistorialJPA.setDescripcionCargo(experienciaLaboralJPA.getDescripcionCargo());
			objetoHistorialJPA.setFecIngreso(experienciaLaboralJPA.getFecIngreso());
			objetoHistorialJPA.setFecEgreso(experienciaLaboralJPA.getFecEgreso());
			objetoHistorialJPA.setIndicadorActual(experienciaLaboralJPA.getIndicadorActual());
			objetoHistorialJPA.setCodTramite(experienciaLaboralJPA.getCodTramite());
			objetoHistorialJPA.setCodRegistro(experienciaLaboralJPA.getCodRegistro());
			if(experienciaLaboralJPA.getEstado()!=null){
				objetoHistorialJPA.setEstado(experienciaLaboralJPA.getEstado());
			}
			objetoHistorialJPA.setAuditoria(auditoria);
			listaObjetoHistorialJPA.add(objetoHistorialJPA);
		}
		return listaObjetoHistorialJPA;
		
	}
	
	
public static List<ExperienciaLaboralDTO> createListHistorialExperienciaLaboralDTO(List<HistorialExperienciaLaboral> listaHistorialExperienciaLaboralJPA){
		
		List<ExperienciaLaboralDTO> listaObjetoDTO=new ArrayList<ExperienciaLaboralDTO>();
		ExperienciaLaboralDTO objetoDTO;

		for (HistorialExperienciaLaboral experienciaLaboralHistorialJPA: listaHistorialExperienciaLaboralJPA) {
			objetoDTO= new ExperienciaLaboralDTO();
			objetoDTO.setIdHistorial(experienciaLaboralHistorialJPA.getIdHistorial());
			objetoDTO.setFecHistorial(experienciaLaboralHistorialJPA.getFecHistorial());
			objetoDTO.setIdLaboral(experienciaLaboralHistorialJPA.getIdLaboral());
			objetoDTO.setIdFicha(experienciaLaboralHistorialJPA.getIdFicha());
			objetoDTO.setIndEspecialidad(experienciaLaboralHistorialJPA.getIndEspecialidad());		
			objetoDTO.setNomCentroTrabajo(experienciaLaboralHistorialJPA.getNomCentroTrabajo());
			objetoDTO.setDescripcionCargo(experienciaLaboralHistorialJPA.getDescripcionCargo());
			objetoDTO.setFecIngreso(experienciaLaboralHistorialJPA.getFecIngreso());
			objetoDTO.setFecEgreso(experienciaLaboralHistorialJPA.getFecEgreso());
			objetoDTO.setIndicadorActual(experienciaLaboralHistorialJPA.getIndicadorActual());
			objetoDTO.setCodTramite(experienciaLaboralHistorialJPA.getCodTramite());
			objetoDTO.setCodRegistro(experienciaLaboralHistorialJPA.getCodRegistro());
			objetoDTO.setEsEditable(false);
			objetoDTO.setEstado(experienciaLaboralHistorialJPA.getEstado());
			listaObjetoDTO.add(objetoDTO);
		}
		
		return listaObjetoDTO;
		
		}
	
	
	
	
}
